home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Network Support Library
/
RoseWare - Network Support Library.iso
/
apidev
/
tpapi.exe
/
NWVAR.PA1
< prev
next >
Wrap
Text File
|
1994-01-14
|
79KB
|
1,792 lines
{#Z+}
(*(10U&l12D(s4099T&k2S*)
{***************************************************************************}
{** Program : NWVAR **}
{***************************************************************************}
{** Version : 1.2 ** Started : 11/11/91 ** Ended : / / **}
{***************************************************************************}
{******************************** Description ******************************}
{***************************************************************************}
{** Variable / constant definition for Netware API library **}
{** **}
{** **}
{** **}
{** **}
{***************************************************************************}
{******************************** Information ******************************}
{***************************************************************************}
{** **}
{** **}
{** This code is (c) 1991 - 1994 Antonio Covelli. ALL RIGHTS RESERVED. **}
{** Portions copyright Novell Inc, **}
{** **}
{** **}
{** **}
{***************************************************************************}
{$I NETWARE.INC}
UNIT NWVAR;
INTERFACE
uses
nwDPMI;
type
{*** MISC TYPES NEEDED BY TPAPI ***}
TByte2Array = ARRAY [0 .. 1] OF BYTE;
TByte3Array = ARRAY [0 .. 2] OF BYTE;
PByte4Array = ^Tbyte4Array;
TByte4Array = ARRAY [0 .. 3] OF BYTE;
TByte5Array = ARRAY [0 .. 4] OF BYTE;
TByte6Array = ARRAY [0 .. 5] OF BYTE;
TByte7Array = ARRAY [0 .. 6] OF BYTE;
PByte8Array = ^Tbyte8Array;
TByte8Array = ARRAY [0 .. 7] OF BYTE;
TByte9Array = ARRAY [0 .. 8] OF BYTE;
TByte10Array = ARRAY [0 .. 9] OF BYTE;
TByte12Array = ARRAY [0 .. 11] OF BYTE;
TByte13Array = ARRAY [0 .. 12] OF BYTE;
TByte14Array = ARRAY [0 .. 13] OF BYTE;
PByte16Array = ^Tbyte16Array;
TByte16Array = ARRAY [0 .. 15] OF BYTE;
TByte17Array = ARRAY [0 .. 16] OF BYTE;
TByte18Array = ARRAY [0 .. 17] OF BYTE;
TByte20Array = ARRAY [0 .. 19] OF BYTE;
TByte21Array = ARRAY [0 .. 20] OF BYTE;
TByte22Array = ARRAY [0 .. 21] OF BYTE;
TByte24Array = ARRAY [0 .. 23] OF BYTE;
TByte26Array = ARRAY [0 .. 25] OF BYTE;
TByte28Array = ARRAY [0 .. 27] OF BYTE;
TByte30Array = ARRAY [0 .. 29] OF BYTE;
PByte32Array = ^TByte32Array;
TByte32Array = ARRAY [0 .. 31] OF BYTE;
TByte38Array = ARRAY [0 .. 37] OF BYTE;
TByte42Array = ARRAY [0 .. 41] OF BYTE;
TByte44Array = ARRAY [0 .. 43] OF BYTE;
PByte45Array = ^TByte45Array;
TByte45Array = ARRAY [0 .. 44] OF BYTE;
TByte46Array = ARRAY [0 .. 45] OF BYTE;
TByte47Array = ARRAY [0 .. 46] OF BYTE;
TByte48Array = ARRAY [0 .. 47] OF BYTE;
TByte50Array = ARRAY [0 .. 49] OF BYTE;
TByte51Array = ARRAY [0 .. 50] OF BYTE;
TByte54Array = ARRAY [0 .. 53] OF BYTE;
TByte56Array = ARRAY [0 .. 55] OF BYTE;
TByte58Array = ARRAY [0 .. 57] OF BYTE;
TByte59Array = ARRAY [0 .. 58] OF BYTE;
TByte60Array = ARRAY [0 .. 59] OF BYTE;
TByte63Array = ARRAY [0 .. 62] OF BYTE;
TByte64Array = ARRAY [0 .. 63] OF BYTE;
TByte65Array = ARRAY [0 .. 64] OF BYTE;
TByte69Array = ARRAY [0 .. 68] OF BYTE;
TByte80Array = ARRAY [0 .. 79] OF BYTE;
TByte96Array = ARRAY [0 .. 95] OF BYTE;
TByte103Array = ARRAY [0 .. 102] OF BYTE;
PByte128Array = ^TByte128Array;
TByte128Array = ARRAY [0 .. 127] OF BYTE;
TByte130Array = ARRAY [0 .. 129] OF BYTE;
TByte132Array = ARRAY [0 .. 131] OF BYTE;
TByte134Array = ARRAY [0 .. 133] OF BYTE;
TByte142Array = ARRAY [0 .. 141] OF BYTE;
TByte152Array = ARRAY [0 .. 151] OF BYTE;
TByte250Array = array [0 .. 249] of byte;
TByte253Array = ARRAY [0 .. 252] OF BYTE;
PByte255Array = ^TByte255Array;
TByte255Array = ARRAY [0 .. 254] OF BYTE;
TByte258Array = ARRAY [0 .. 257] OF BYTE;
TByte265Array = ARRAY [0 .. 264] OF BYTE;
TByte504Array = ARRAY [0 .. 503] OF BYTE;
TByte514Array = ARRAY [0 .. 513] OF BYTE;
TChar13Array = ARRAY [0 .. 12] OF CHAR;
TChar14Array = ARRAY [0 .. 13] OF CHAR;
TChar50Array = ARRAY [0 .. 49] OF CHAR;
TChar80Array = ARRAY [0 .. 79] OF CHAR;
TWord20Array = ARRAY [0 .. 19] OF WORD;
TWord25Array = ARRAY [0 .. 24] OF WORD;
TWord60Array = ARRAY [0 .. 59] OF WORD;
TWord250Array = ARRAY [0 .. 249] OF WORD;
TLongint2Array = ARRAY [0 .. 1] OF LONGINT;
TLongint4Array = ARRAY [0 .. 3] OF LONGINT;
TLongint5Array = ARRAY [0 .. 4] OF LONGINT;
TLongint10Array = ARRAY [0 .. 9] OF LONGINT;
TLongint16Array = ARRAY [0 .. 15] OF LONGINT;
TLongint20Array = ARRAY [0 .. 19] OF LONGINT;
TLongint25Array = ARRAY [0 .. 24] OF LONGINT;
TLongint32Array = ARRAY [0 .. 31] OF LONGINT;
TLongint125Array = ARRAY [0 .. 124] OF LONGINT;
TString1 = STRING [1];
TString4 = STRING [4];
TString8 = STRING [8];
TString10 = STRING [10];
TString12 = STRING [12];
TString13 = STRING [13];
TString14 = STRING [14];
TString15 = string [15];
TString16 = STRING [16];
TString20 = string [20];
TString24 = STRING [24];
TString29 = STRING [29];
TString33 = STRING [33];
TString36 = STRING [36];
TString40 = STRING [40];
TString45 = STRING [45];
TString47 = STRING [47];
TString48 = STRING [48];
TString50 = STRING [50];
TString55 = string [55];
TString58 = string [58];
TString59 = string [59];
TString60 = string [60];
TString61 = string [61];
TString64 = STRING [64];
TString65 = STRING [65];
TString70 = STRING [70];
TString80 = STRING [80];
TString100 = string [100];
TString102 = STRING [102];
TString118 = string [118];
TString127 = STRING [127];
TString128 = STRING [128];
TString255 = STRING [255];
TFileName = TString14;
TObjectName = TString48;
TFullName = TString128;
TPassword = TString128;
TQueuePathName = TString118;
TPathName = TString255;
TPropertyName = TString15;
TLogicalRecordName = TString100;
TLogicalLockName = TString102;
TSemaphoreName = TString127;
TBannerUserName = TChar13Array;
TFormName = TChar13Array;
TConsoleMessage = TString58;
TBroadcastMessage = TString55;
TPersonalMessage = TString127;
TVolumeName = TString16;
TDirectoryName = TString16;
TPropertyValue = TByte128Array;
TEncryptKey = TByte8Array;
TNameSpaceName = TString12;
TConnectionList = ARRAY [1 .. 250] OF BYTE;
TConnectionList1 = array [1 .. 250] of word;
TConnectionListLong = array [1 .. 128] of longint;
TBinderyID = longint;
TBinderyType = word;
OT_BinderyID = LONGINT;
OT_BinderyType = WORD;
pByte = ^byte;
TByte = byte;
pWord = ^word;
TWord = word;
pLongint = ^longint;
TLongint = longint;
{$IFNDEF WINDOWS}
pChar = ^char;
{$ENDIF}
TChar = char;
const
MaxFragsInList = 1;
type
TFragment = record
RequestBufferAddr : pointer;
RequestBufferSize : word;
ReceiveBufferAddr : pointer;
ReceiveBufferSize : word;
end;
TFragmentList = array [1 .. MaxFragsInList] of TFragment;
const
{****************}
{*** VLM ID's ***}
{****************}
CallerID : word = $0000;
VLMManager : word = $0001;
ConnectionTableManager : word = $0010;
TransportMultiplexor : word = $0020;
IPXTransport : word = $0021;
TCPIPTransport : word = $0022;
NetwareProtocolMultiplexor : word = $0030;
BinderyServices : word = $0031;
DirectoryServices : word = $0032;
PersonalNetware : word = $0033;
RSA : word = $0034;
Redirection : word = $0040;
FileIO : word = $0041;
PrintServices : word = $0042;
General : word = $0043;
Netx : word = $0050;
Auto : word = $0060;
Security : word = $0061;
NetworkMgmtResponder : word = $0100;
{*********************************}
{*** VLM DESTINATION FUNCTIONS ***}
{*********************************}
CONN_NLUN : word = $000D;
GENR_GSPR : word = $0004;
GENR_SPEC : word = $0006;
{************************}
{*** VLM SUBFUNCTIONS ***}
{************************}
GET_DEF_PRIM = $0001;
GET_PRIMARY = $0001;
SET_PRIMARY = $0002;
GEN_LAST_Q = $0002;
VLM_ID_CONN = $0010;
{************************************************}
{*** Connection Entry Information (CEI) Table ***}
{************************************************}
CEI_Error = $0000;
CEI_Net_Type = $0001;
CEI_Perm = $0002;
CEI_Auth = $0003;
CEI_PBurst = $0004;
CEI_Changing = $0005;
CEI_Needs_Maxio = $0006;
CEI_Pburst_Reset = $0007;
CEI_Maj_Min_Ver = $0008;
CEI_Ref_Count = $0009;
CEI_Dist_Time = $000A;
CEI_Max_Io = $000B;
CEI_NCP_Seq = $000C;
CEI_Conn_Num = $000D;
CEI_Order_Num = $000E;
CEI_Tran_Type = $000F;
CEI_NCP_Req_Type = $0010;
CEI_Tran_Buff = $0011;
CEI_Bcast = $0012;
CEI_Lip = $0013;
CEI_Security = $0014;
CEI_Res_Soft_Count = $0015;
CEI_Locked = $0016;
{*** ACCOUNTING SERVICES ***}
const
{ Comment Types }
Connect_Time_Charge_Note = $0001;
{ The fields in the record are as follows : }
{}
{ Offset Field Type }
{}
{ 0 Connect time longint }
{ 4 Request count longint }
{ 8 Bytes read high word }
{ 10 Bytes read 2 word }
{ 12 Bytes read low word }
{ 14 Bytes written high word }
{ 16 Bytes written 2 word }
{ 18 Bytes written low word }
Disk_Storage_Charge_Note = $0002;
{The fields in the record are as follows : }
{}
{ Offset Field Type }
{}
{ 0 Blocks owned longint }
{ 4 Number of half hours longint }
Login_Note = $0003;
{The fields in the record are as follows : }
{}
{ Offset Field Type }
{}
{ 0 Net longint }
{ 4 Node (high) longint }
{ 8 Node (low) longint }
Logout_Note = $0004;
{The fields in the record are as follows : }
{}
{ Offset Field Type }
{}
{ 0 Net longint }
{ 4 Node (high) longint }
{ 8 Node (low) longint }
Account_Locked_Note = $0005;
{The fields in the record are as follows : }
{}
{ Offset Field Type }
{}
{ 0 Net longint }
{ 4 Node (high) longint }
{ 8 Node (low) longint }
{************************}
{*** BINDERY SERVICES ***}
{************************}
const
{** Bindery security access byte definitions **}
BS_AnyRead = $0000;
{ Readable by anyone }
BS_LoggedRead = $0001;
{ Must be logged in to read }
BS_ObjectRead = $0002;
{ Readable by the object only }
BS_SuperRead = $0003;
{ Readable by Supervisor only }
BS_BinderyRead = $0004;
{ Readable by Bindery only }
BS_AnyWrite = $0000;
{ Writeable by anyone }
BS_LoggedWrite = $0010;
{ Must be logged in to write }
BS_ObjectWrite = $0020;
{ Writeable by the object only }
BS_SuperWrite = $0030;
{ Writeable by Supervisor only }
BS_BinderyWrite = $0040;
{ Writeable by Bindery only }
{** Access rights definitions for 286-based Netware **}
TA_None = $0000;
{ Trustee has no rights in directory }
TA_Read = $0001;
{ Trustee can read from file that is open }
TA_Write = $0002;
{ Trustee can write to a file that is open }
TA_Open = $0004;
{ Trustee can open an existing file }
TA_Create = $0008;
{ Trustee can create a new file }
TA_Delete = $0010;
{ Trustee can delete files }
TA_Ownership = $0020;
{ Trustee can create subdirectories and modify trustee rights }
TA_Search = $0040;
{ Trustee can view the names of non-hidden files }
TA_Modify = $0080;
{ Trustee can modify the file attributes }
TA_All = $00FF;
{ Trustee has all of the above rights }
{*** Access rights definitions for 386-based Netware ***}
TR_None = $0000;
{ Trustee has no rights in directory }
TR_Read = $0001;
{ For a directory, the trustee can open and read existing files in this
directory unless blocked by mask or trustee rights assignments. For a
file the trustee can open and read this file }
TR_Write = $0002;
{ For a directory, the trustee can open and write existing files in this
directory unless blocked by mask or trustee rights assignments. For a
file the trustee can open and write this file}
TR_Undefined = $0004;
{ UNDEFINED }
TR_Create = $0008;
{ For a directory, the trustee can create files and subdirectories in this
directory. For a file, the trustee can salvage this file if deleted. }
TR_Erase = $0010;
{ For a directory, the trustee can delete this directory if the trustee has
rights to delete everything inside it. For a file, the trustee can delete
this file. }
TR_Access = $0020;
{ For a directory, the trustee can modify the trustee list and inherited
rights mask of this directory. For a file, the trustee can modify the
trustee list and inherited rights mask of this file. }
TR_File = $0040;
{ For a directory, the trustee can see the names of files in this directory
when scanning it (unless blocked by mask or trustee rights assignments).
For a file, the trustee can see the name of this file when scanning the
directory. }
TR_Modify = $0080;
{ For a directory, the trustee can rename this directory and change its
attributes. For a file, the trustee can rename this file and change its
attributes. }
TR_Normal = $00FF;
{ This attribute grants all rights except TR_Supervisor }
TR_Supervisor = $0100;
{ For a directory, the trustee has all rights to this directory and all
subdirectories and files. The trustee can grant supervisor rights to other
users in this directory and it subdirectories and files. User's rights
override all inherited rights masks in subdirectoriesand files. The trustee
can assign space limitations to subdirectories. For a file, the trustee has
all rights to this file. }
TR_All = $01FF;
{ This attribute is a combination of the preceding two attributes. }
(* Attributes of objects and properties in the bindery *)
BF_Static = $0000;
{ Object/property is permanent }
BF_Dynamic = $0001;
{ Object/property is temporary }
BF_Item = $0000;
{ An item property }
BF_Set = $0002;
{ A set property }
{** Bindery object type definitions **}
OT_Wild = $FFFF;
{ Wildcard }
OT_Unknown = $0000;
{ Unknown }
OT_User = $0001;
{ Object is a user }
OT_UserGroup = $0002;
{ Object is a group }
OT_PrintQueue = $0003;
{ Object is a print queue }
OT_FileServer = $0004;
{ Object is a file server }
OT_JobServer = $0005;
OT_Gateway = $0006;
OT_PrintServer = $0007;
OT_ArchiveQueue = $0008;
OT_ArchiveServer = $0009;
{ Object is an archive server }
OT_JobQueue = $000A;
OT_Administration = $000B;
OT_NasSnaGateway = $0021;
OT_NACS = $0023;
OT_RemoteBridgeServer = $0024;
OT_BridgeServer = $0026;
OT_TCPIPGateway = $0027;
OT_Gateway1 = $0029;
OT_TimeSynchronizationServer = $002D;
OT_ArchiveServerDynamicSap = $002E;
OT_AdvertisingPrintServer = $0047;
OT_BtrieveVAPNLMv5xx = $004B;
OT_SQLVAPNLM = $004C;
OT_XtreeNetworkVersion = $004D;
OT_BtrieveVAPNLMv4xx = $0050;
OT_AppleTalk = $0053;
OT_X25Gateway = $0088;
OT_WanCopy = $0072;
OT_NetwareForVMS = $007A;
OT_NetwareAccessServer = $0098;
OT_PortableNetware = $009E;
OT_CompaqIDAStatusMonitor = $00AC;
OT_Netware3xRemoteConsole = $0107;
OT_NNSDomain = $0133;
OT_NNSProfile = $0135;
OT_NNSQueue = $0137;
{*** THIRD PARTY BINDERY TYPES ***}
OT_PegasusMail = $9009;
TYPE
TAccountRestrictions = RECORD
AccountExpirationDate : TByte3Array;
AccountDisabledFlag : BYTE;
PasswordExpirationDate : TByte3Array;
GraceLoginsRemaining : BYTE;
PasswordExpirationInterval : WORD;
GraceLoginResetValue : BYTE;
MinimumPasswordLength : BYTE;
MaximumConcurrentConnections : WORD;
AllowedLoginTimeBitmap : TByte42Array;
LastLoginDateAndTime : TByte6Array;
RestrictionFlags : BYTE;
Unused : BYTE;
MaximumDiskUsageInBlocks : LONGINT;
BadLoginCount : WORD;
NextResetTime : LONGINT;
BadLoginAddress : TByte12Array;
END;
{*******************************}
{*** END OF BINDERY SERVICES ***}
{*******************************}
{**********************************}
{*** QUEUE MAMANGEMENT SERVICES ***}
{**********************************}
CONST
QF_Operator_Hold = $0080;
QF_User_Hold = $0040;
QF_Entry_Open = $0020;
QF_Service_Restart = $0010;
QF_Auto_Start = $0008;
{ JOB CONTROL FLAGS }
QS_Cant_Add_Jobs = $0001;
QS_Servers_Cant_Attach = $0002;
QS_Cant_Service_Jobs = $0004;
{ QUEUE STATUS FLAGS }
type
FileOfByte = file of byte;
FileOfText = text;
NWPS_Client = record
VersionNumber : Byte;
TabSize : Byte;
NumberOfCopies : Word;
PrintControlFlags : Word;
MaxLinesPerPage : Word;
MaxCharsPerLine : Word;
FormName : TFormName;
Reserved : TByte9Array;
BannerName : TBannerUserName;
BannerFilename : TChar13Array;
HeaderFilename : TFileName;
DirectoryPath : TChar80Array;
end;
type
JobStruct286 = RECORD
ClientStation : BYTE;
ClientTaskNumber : BYTE;
ClientObjectID : OT_BinderyID;
TargetServerObjectID : OT_BinderyID;
TargetExecutionTime : TByte6Array;
JobEntryTime : TByte6Array;
JobNumber : WORD;
JobType : WORD;
JobPosition : BYTE;
JobControlFlags : BYTE;
JobFileName : TChar14Array; {TFileName;}
JobFileHandle : TByte6Array;
ServerStation : BYTE;
ServerTaskNumber : BYTE;
ServerObjectID : OT_BinderyID;
TextJobDescription : TChar50Array;
case BYTE of
1 : (ClientRecordArea : TByte152Array);
2 : (PrintServerClient: NWPS_Client);
END;
JobStructure = record
RecordInUse : word;
PreviousRecord : longint;
NextRecord : longint;
ClientStation : longint;
ClientTaskNumber : longint;
ClientObjectID : OT_BinderyID;
TargetServerObjectID : OT_BinderyID;
TargetExecutionTime : TByte6Array;
JobEntryTime : TByte6Array;
JobNumber : longint;
JobType : word;
JobPosition : word;
JobControlFlags : word;
JobFileName : TChar14Array;
JobFileHandle : longint;
ServerStation : longint;
ServerTaskNumber : longint;
ServerObjectID : OT_BinderyID;
TextJobDescription : TChar50Array;
ClientRecordArea : TByte152Array;
end;
{*****************************************}
{*** END OF QUEUE MAMANGEMENT SERVICES ***}
{*****************************************}
{********************************}
{*** INTERNAL TPAPI CONSTANTS ***}
{********************************}
const
NWDEFCONNHANDLE = $0000;
{ Pass to functions when wanting to execute API's on the default file server }
var
VLMPresent : boolean;
VLMEntryAddress : pointer;
{ INTERNAL POINTERS USED BY VLMS }
{$IFDEF DPMI}
RealFragList : TDualPtr; { used to allocate real mode memory }
FragmentList : ^TFragmentList;
{$ELSE}
FragmentList : TFragmentList;
{$ENDIF}
{************************************}
{*** AFP SERVICES FOR DOS CLIENTS ***}
{************************************}
CONST
AFP_SFI_SetAttributes = $0001;
AFP_SFI_CreationDate = $0002;
AFP_SFI_AccessDate = $0004;
AFP_SFI_ModifyDateTime = $0008;
AFP_SFI_BackupDateTime = $0010;
AFP_SFI_FinderInfo = $0020;
AFP_GFI_Attributes = $0001;
AFP_GFI_ParentDirID = $0002;
AFP_GFI_CreationDate = $0004;
AFP_GFI_AccessDate = $0008;
AFP_GFI_ModifyDateTime = $0010;
AFP_GFI_BackupDateTime = $0020;
AFP_GFI_FinderInfo = $0040;
AFP_GFI_LongName = $0080;
AFP_GFI_EntryID = $0100;
AFP_GFI_DataForkLen = $0200;
AFP_GFI_ResrcForkLen = $0400;
AFP_GFI_NumOffSpring = $0800;
AFP_GFI_OwnerID = $1000;
AFP_GFI_ShortName = $2000;
TYPE
AFPFileInfo = RECORD
EntryID : LONGINT;
ParentID : LONGINT;
Attributes : WORD;
DataForkLength : LONGINT;
ResourceForkLength : LONGINT;
NumOffSpring : WORD;
CreationDate : WORD;
AccessDate : WORD;
ModifyDate : WORD;
ModifyTime : WORD;
BackupDate : WORD;
BackupTime : WORD;
FinderInfo : TByte32Array;
LongName : TString33;
Pad1 : CHAR;
OwnerID : OT_BinderyID;
ShortName : TString13;
pad2 : CHAR;
AccessPrivileges : WORD;
END;
AFPSetInfo = RECORD
Attributes : WORD;
CreationDate : WORD;
AccessDate : WORD;
ModifyDate : WORD;
ModifyTime : WORD;
BackupDate : WORD;
BackupTime : WORD;
FinderInfo : TByte32Array;
END;
{*******************************************}
{*** END OF AFP SERVICES FOR DOS CLIENTS ***}
{*******************************************}
{***********************************************}
{*** COMMUNICATIONS SERVICES FOR DOS CLIENTS ***}
{***********************************************}
CONST
Short_Lived = $00;
Long_Lived = $FF;
Enable_Watchdog = $FF;
Disable_WatchDog = $00;
SPX_Is_Installed = $FF;
SPX_Not_Installed = $00;
SPX_Connection_Ok = $00;
SPX_Connection_Started = $00;
SPX_Connection_Established = $00;
SPX_Packet_Successful = $00;
SPX_Socket_Not_Opened = $FF;
SPX_Malformed_Packet = $FD;
SPX_Packet_Overflow = $FD;
SPX_Listen_Canceled = $FC;
SPX_Connection_Table_Full = $EF;
SPX_Invalid_Connection = $EE;
SPX_No_Answer_From_Target = $ED;
SPX_Connection_Failed = $ED;
SPX_Connection_Terminated = $ED;
SPX_Terminate_Poorly = $EC;
Periodic_ID_Packet = $02;
Response_ID_Packet = $04;
SAP_Socket = $0452;
One_Minute = $0438;
MaxSockets = 20;
TYPE
IPXAddress = RECORD
Network : TByte4Array;
Node : TByte6Array;
Socket : WORD;
END;
IPXHeader = RECORD
CheckSum : WORD;
HLength : WORD;
TransportControl : BYTE;
PacketType : BYTE;
Destination : IPXAddress;
Source : IPXAddress;
END;
SPXHeader = RECORD
Header : IPXHeader;
ConnectionControl : BYTE;
DataStreamType : BYTE;
SourceConnectionID : WORD;
DestConnectionID : WORD;
SequenceNumber : WORD;
AcknowledgeNumber : WORD;
AllocationNumber : WORD;
END;
ECBFragmentType = RECORD
Address : pointer;
Size : WORD;
END;
ECB = RECORD
LinkAddress : POINTER;
ESRAddress : POINTER;
InUseFlag : BYTE;
CompletionCode : BYTE;
SocketNumber : WORD;
IPXWorkSpace : TByte4Array;
DriverWorkSpace : TByte12Array;
ImmediateAddress : TByte6Array;
FragmentCount : WORD;
FragmentDescriptor : ECBFragmentType;
END;
SAPHeader = RECORD
CheckSum : WORD;
HLength : WORD;
TransportControl : BYTE;
PacketType : BYTE;
Destination : IPXAddress;
Source : IPXAddress;
SAPPacketType : WORD;
ServerType : WORD;
ServerName : TObjectName;
ServerAddress : IPXAddress;
InterveningNetworks : WORD;
END;
SAP_BUFFER = RECORD
TheECB : ECB;
Packet : SAPHeader;
END;
SAP = RECORD
Header : IPXHeader;
ResponseType : WORD;
ServerType : WORD;
ServerName : TObjectName;
ServerAddress : IPXAddress;
InterveningNetworks : WORD;
END;
SAPQueryPacket = RECORD
CheckSum : WORD;
HLength : WORD;
TransportControl : BYTE;
PacketType : BYTE;
Destination : IPXAddress;
Source : IPXAddress;
QueryType : WORD;
ServerType : WORD;
END;
Connection_Info = RECORD
ConnectionState : BYTE;
ConnectionFlags : BYTE;
SourceConnectionID : WORD;
DestinationConnectionID : WORD;
SequenceNumber : WORD;
AcknowledgeNumber : WORD;
AllocationNumber : WORD;
RemoteAcknowledgeNumber : WORD;
RemoteAllocationNumber : WORD;
ConnectionSocket : WORD;
ImmediateAddress : TByte6Array;
Destination : IPXAddress;
RetransmissionCount : WORD;
EstimatedRoundTripDelay : WORD;
RetransmittedPackets : WORD;
SuppressedPackets : WORD;
END;
VAR
IPXLocation : POINTER;
ECBTable : array [1 .. MaxSockets] of ^ECB;
{******************************************************}
{*** END OF COMMUNICATIONS SERVICES FOR DOS CLIENTS ***}
{******************************************************}
{***********************************************}
{*** DIRECTORY/FILE SERVICES FOR DOS CLIENTS ***}
{***********************************************}
CONST
NoRestrictionValue = $40000000;
SectorSize386 = 512;
MaxNetwareSearchDrives = 16;
{** Drive constant definitions **}
NoBaseDrive = $FF;
TemporaryDrive = $00;
PermanentDrive = $01;
TempDrive = $1A;
TempDrive1 = $1B;
TempDrive2 = $1C;
TempDrive3 = $1D;
{** Drive status definitions **}
DrivePermanent = $01; {byte; Permanently mapped to network}
DriveTemporary = $02; {byte; Temporary mapped to network}
DriveNetwork = $03; {byte; Mapped to network}
DriveLocal = $80; {byte; Local drive, if network bit set - mapped to network}
DriveAdd = $01;
DriveInsert = $02;
DriveDelete = $03;
{** Name Spaces **}
Dos_Name_Space = 0;
Mac_Name_Space = 1;
{** File attribute definitions for 286-based Netware **}
FA_Normal = $00; {byte; This file has no specific attributes, it is readable / writeable}
FA_ReadOnly = $01; {byte; This file can be read but not written}
FA_Hidden = $02; {byte; This file will not show up in a normal directory listing}
FA_System = $04; {byte; This file is for use by the system}
FA_ExecuteOnly = $08; {byte; This file can be loaded for execution only}
FA_Directory = $10; {byte; This file is a subdirectory not a file}
FA_NeedsArchived = $20; {byte; This file has been modified since the last archive}
FA_Shareable = $40; {byte; More than one user has can have this file open simultaneously}
{** Extended file attribute definitions for 286-based Netware **}
FA_Transactional = $10; {byte; This file will allow support of TTS}
FA_Indexed = $20; {byte; An index of all blocks in the file will be kept for faster access}
FA_ReadAudit = $40; {byte; All reads from this file will be recorded in an audit file}
FA_WriteAudit = $80; {byte; All writes to this file will be recorded in an audit file}
{** File attribute definitions for 386-based Netware **}
TF_Normal = $00000; {longint; Files only; This attribute defines a file without any special
attributes; that is, the file has read and write rights.}
TF_Read_Only = $00001; {longint; Files only; When read only is assigned, Netware automatically
assigns the delete inhibit and rename inhibit attributes as well.
Consequently, users cannot write to, erase or rename the file even if
they have been granted the write and erase rights at directory or file
level.}
TF_Hidden = $00002; {longint; File and directories; This attribute hides the file from DOS DIR
scans and prevents it from being deleted or copied. However, the files and
directories will appear with an NDIR scan if the user has file scan rights.}
TF_System = $00004; {longint; Files and directories; This attribute hides the file or directory
from DOS DIR scans. However, the files and directories will appear with an
NDIR scan if the user has file scan rights.}
TF_Execute_Only = $00008; {longint; Files only; This attribute prevents files from being copied. Only
the supervisor can assign this attribute, and it should be assigned only if
backup copy of the file exists. Backup utilities will not back up the files,
and some programs will not run correctly with this attribute set.}
TF_Directory = $00010; {longint; The file is a directory not a file}
TF_Needs_Archived = $00020; {longint; Files only; This file has been modified since the last archive.}
TF_Execute_Confirm = $00040; {longint; This attribute is used internally by Novell}
TF_Shareable = $00080; {longint; Files only; More than one user has can have this file open simultaneously}
TF_Low_Search = $00100; {longint;}
TF_Mid_Search = $00200; {longint;}
TF_Hi_Search = $00400; {longint;}
TF_Private = $00800; {longint; Reserved}
TF_Transactional = $01000; {longint; Files only; }
TF_Indexed = $02000; {longint; }
TF_Read_Audit = $04000; {longint; Files only; }
TF_Write_Audit = $08000; {longint; Files only; }
TF_Purge = $10000; {longint; Files and directories; }
TF_Rename_Inhibit = $20000; {longint; Files and directories; }
TF_Delete_Inhibit = $40000; {longint; Files and directories; }
TF_Copy_Inhibit = $80000; {longint; Files only; }
{** Modify bits to be used with SETENTRY **}
M_Modify_Name = $0001;
M_File_Attributes = $0002;
M_Create_Date = $0004;
M_Create_Time = $0008;
M_Owner_ID = $0010;
M_Last_Archived_Date = $0020;
M_Last_Archived_Time = $0040;
M_Last_Archived_ID = $0080;
M_Last_Updated_Date = $0100;
M_Last_Updated_Time = $0200;
M_Last_Updated_ID = $0400;
M_Last_Accessed_Date = $0800;
M_Inherited_Rights_Mask = $1000;
M_Maximum_Space = $2000;
M_Mac_Modify_Name = 1;
M_Mac_Finder_Info = 2;
M_Mac_ProDos_Info = 4;
TYPE
Volume_Stats = RECORD
SystemElapsedTime : LONGINT;
VolumeNumber : BYTE;
LogicalDriveNumber : BYTE;
SectorsPerBlock : WORD;
StartingBlock : WORD;
TotalBlocks : WORD;
AvailableBlocks : WORD;
TotalDirectorySlots : WORD;
AvailableDirectorySlots : WORD;
MaxDirectorySlotsUsed : WORD;
IsHashing : BYTE;
IsCaching : BYTE;
IsRemovable : BYTE;
IsMounted : BYTE;
VolumeName : TVolumeName;
END;
NWSalv_Entry = RECORD
EntryID : LONGINT;
Attributes : LONGINT;
NameSpaceType : BYTE;
Name : TNameSpaceName;
LastArchiveDateAndTime : LONGINT;
LastArchiverID : OT_BinderyID;
ModifyDateAndTime : LONGINT;
LastModifierID : OT_BinderyID;
DataForkSize : LONGINT;
LastAccessedDate : WORD;
DeletedFileTime : LONGINT;
DeletedDateAndTime : LONGINT;
DeletorID : LONGINT;
END;
NWFile_Entry = RECORD
Sequence : LONGINT;
Reserved1 : LONGINT;
Attributes : LONGINT;
Reserved2 : TByte2Array;
NSType : BYTE;
Name : TNameSpaceName;
CreationDate : WORD;
CreationTime : WORD;
OwnerID : OT_BinderyID;
LastArchivedDate : WORD;
LastArchivedTime : WORD;
LastArchiverID : OT_BinderyID;
ModifyDate : WORD;
ModifyTime : WORD;
lastModifierID : OT_BinderyID;
DataForkSize : LONGINT;
Reserved3 : TByte44Array;
InheritedRightsMask : WORD;
LastAccessDate : WORD;
Reserved4 : TByte28Array;
END;
NWDir_Entry = RECORD
Sequence : LONGINT;
Reserved1 : LONGINT;
Attributes : LONGINT;
Reserved2 : TByte2Array;
NSType : BYTE;
Name : TNameSpaceName;
CreationDate : WORD;
CreationTime : WORD;
OwnerID : OT_BinderyID;
LastArchivedDate : WORD;
LastArchivedTime : WORD;
LastArchiverID : OT_BinderyID;
ModifyDate : WORD;
ModifyTime : WORD;
Reserved3 : TByte56Array;
InheritedRightsMask : WORD;
Reserved4 : TByte26Array;
END;
NWPhys_Entry = RECORD
Sequence : LONGINT;
Reserved1 : LONGINT;
Attributes : LONGINT;
Reserved2 : TByte2Array;
NSType : BYTE;
Name : TNameSpaceName;
CreationDate : WORD;
CreationTime : WORD;
OwnerID : OT_BinderyID;
LastArchivedDate : WORD;
LastArchivedTime : WORD;
LastArchiverID : OT_BinderyID;
ModifyDate : WORD;
ModifyTime : WORD;
LastModifierID : OT_BinderyID;
DataForkSize : LONGINT;
Reserved3 : TByte44Array;
InheritedRightsMask : WORD;
LastAccessDate : WORD;
Reserved4 : TByte28Array;
ForkSize : TLongint10Array;
END;
NWMacEntry = RECORD
Sequence : LONGINT;
Reserved1 : LONGINT;
Attributes : LONGINT;
Reserved2 : TByte2Array;
NSType : BYTE;
Name : TNameSpaceName;
ResourceFork : LONGINT;
ResourceForkSize : LONGINT;
FinderInfo : TByte32Array;
ProDosInfo : TByte6Array;
Reserved3 : TByte38Array;
END;
NWDir_Info = RECORD
TotalBlocks : LONGINT;
FreeBlocks : LONGINT;
TotalDirEntries : LONGINT;
AvailDirEntries : LONGINT;
Flags : LONGINT;
SectorsPerBlock : BYTE;
VolumeName : TObjectName;
END;
NWVol_Usage = RECORD
TotalBlocks : LONGINT;
FreeBlocks : LONGINT;
PurgableBlocks : LONGINT;
NotYetPurgableBlocks : LONGINT;
TotalDirEntries : LONGINT;
AvailDirEntries : LONGINT;
MaxDirEntriesUsed : LONGINT;
Flags : TByte4Array;
BlockSize : WORD;
IsHashing : BYTE;
IsRemovable : BYTE;
VolName : TVolumeName;
END;
NWVol_UsageV3 = RECORD
TotalBlocks : LONGINT;
FreeBlocks : LONGINT;
PurgableBlocks : LONGINT;
NotYetPurgableBlocks : LONGINT;
TotalDirEntries : LONGINT;
AvailDirEntries : LONGINT;
Flags : LONGINT;
BlockSize : BYTE;
VolName : TVolumeName;
END;
NWDir_Rest = RECORD
Level : BYTE;
MAXAVAIL : LONGINT;
CurrentUsed : LONGINT;
END;
{*************************************************}
{*** END OF DIRECTORY SERVICES FOR DOS CLIENTS ***}
{*************************************************}
{********************************************************}
{*** FILE SERVER ENVIRONMENT SERVICES FOR DOS CLIENTS ***}
{********************************************************}
TYPE
Conn_Semaphore = RECORD
OpenCount : WORD;
SempahoreValue : BYTE;
TaskNumber : BYTE;
SemaphoreName : TSemaphoreName;
END;
Conn_Task_Info = RECORD
LockStatus : BYTE;
WaitingTaskNumber : BYTE;
BeginAddress : LONGINT;
EndAddress : LONGINT;
VolumeNumber : BYTE;
NumberOfTasks : BYTE;
DirectoryEntry : WORD;
LockedName : TString50;
TaskNumber : BYTE;
TaskState : BYTE;
END;
Conn_Usage = RECORD
SystemElapsedTime : LONGINT;
BytesRead : TByte6Array;
BytesWritten : TByte6Array;
TotalRequestPackets : LONGINT;
END;
Conn_Using_File = RECORD
UseCount : WORD;
OpenCount : WORD;
OpenForReadCount : WORD;
OpenForWriteCount : WORD;
DenyReadCount : WORD;
DenyWriteCount : WORD;
Reserved1 : WORD;
Locked : BYTE;
Reserved2 : BYTE;
LogicalConnNumber : WORD;
TaskNumber : BYTE;
LockType : BYTE;
AccessFlags : BYTE;
LockStatus : BYTE;
END;
Disk_Cache_Stats = RECORD
SystemElapsedTime : LONGINT;
CacheBufferCount : WORD;
CacheBufferSize : WORD;
DirtyCacheBuffers : WORD;
CacheReadRequests : LONGINT;
CacheWriteRequests : LONGINT;
CacheHits : LONGINT;
CacheMIsses : LONGINT;
PhysicalReadRequests : LONGINT;
PhysicalWriteRequests : LONGINT;
PhysicalReadErrors : WORD;
PhysicalWriteErrros : WORD;
CacheGetRequests : LONGINT;
CacheFullWriteRequests : LONGINT;
CachePartialWriteRequests : LONGINT;
BackgroundDirtyWrites : LONGINT;
BackgroundAgedWrites : LONGINT;
TotalCacheWrites : LONGINT;
CacheAllocations : LONGINT;
ThrashingCount : WORD;
LRUBlockWasDirtyCount : WORD;
ReadBeyondWriteCount : WORD;
FragmentedWriteCount : WORD;
CacheHitOnUnavailCount : WORD;
CacheBlockScrappedCount : WORD;
END;
Disk_Channel_Stats = RECORD
SystemElapsedTime : LONGINT;
ChannelState : WORD;
ChannelSyncState : WORD;
DriverType : BYTE;
DriverMajorVersion : BYTE;
DriverMinorVersion : BYTE;
DriverDescriptionVersion : TString65;
IOAddr1 : WORD;
IOAddr1Size : WORD;
IOAddr2 : WORD;
IOAddr2Size : WORD;
SharedMem1Seg : TByte3Array;
SharedMem1Ofs : WORD;
SharedMem2Seg : TByte3Array;
SharedMem2Ofs : WORD;
Interupt1Used : BYTE;
Interupt1 : BYTE;
Interupt2Used : BYTE;
Interupt2 : BYTE;
DMAChannel1Used : BYTE;
DMAChannel1 : BYTE;
DMAChannel2Used : BYTE;
DMAChannel2 : BYTE;
Reserved2 : WORD;
ConfigDescription : TString80;
END;
Drive_Map_Table = RECORD
SystemElapsedTime : LONGINT;
SFTLevel : BYTE;
LogicalDriveCount : BYTE;
PhysicalDriveCount : BYTE;
DiskChannelTable : TByte5Array;
PendingIOCommands : WORD;
MappingTable : TByte32Array;
DriveMirrorTable : TByte32Array;
DeadMirrorTable : TByte32Array;
RemirroredDrive : BYTE;
Reserved : BYTE;
RemirroredBlock : LONGINT;
SFTErrorTable : TWord60Array;
END;
File_Sys_Stats = RECORD
SystemElapsedTime : LONGINT;
MaxOpenFiles : WORD;
MaxFilesOpened : WORD;
CurrOpenFiles : WORD;
TotalFilesOpened : LONGINT;
TotalReadRequests : LONGINT;
TotalWriteRequests : LONGINT;
CurrChangedFATSectors : WORD;
TotalChangedFATSectors : LONGINT;
FATWriteErrors : WORD;
FatalFATWriteErrors : WORD;
FATScanErrors : WORD;
MaxIndexFilesOpened : WORD;
CurrOpenIndexedFiles : WORD;
AttachedIndexFiles : WORD;
AvailableIndexFiles : WORD;
END;
Lan_Config = RECORD
NetworkAddress : TByte4Array;
HostAddress : TByte6Array;
LANDriverInstalled : BYTE;
OptionNumber : BYTE;
ConfigurationText1 : TString80;
ConfigurationText2 : TString80;
END;
Logical_Rec_Info = RECORD
CurrentUseCount : WORD;
ShareableLockCount : WORD;
Reserved1 : WORD;
Locked : BYTE;
Reserved2 : BYTE;
LogicalConnectionNumber : WORD;
TaskNumber : BYTE;
LockStatus : BYTE;
END;
Logical_Record = RECORD
TaskNumber : BYTE;
LockStatus : BYTE;
LogicalLockName : TLogicalLockName;
END;
Conn_Open_Files286 = RECORD
TaskNumber : BYTE;
LockStatus : BYTE;
AccessFlag : BYTE;
LockType : BYTE;
VolumeNumber : BYTE;
Reserved : BYTE;
DirectoryEntry : WORD;
FileName : TFileName;
END;
Conn_Open_Files = RECORD
TaskNumber : word;
LockType : byte;
AccessControl : byte;
LockFlag : byte;
VolumeNumber : byte;
ParentDirEntry : longint;
DirectoryEntry : longint;
Reserved : byte;
DataStreamType : byte;
FileName : TFileName;
end;
Phys_Disk_Stats = RECORD
SystemElapsedTime : LONGINT;
DiskChannel : BYTE;
DiskRemovable : BYTE;
DriveType : BYTE;
ControllerDriveNumber : BYTE;
ControllerNumber : BYTE;
ControllerType : BYTE;
DriveSize : LONGINT;
DriveCylinders : WORD;
DriveHeads : BYTE;
SectorsPerTrack : BYTE;
IOErrorCount : WORD;
HotFixStart : LONGINT;
HotFixSize : WORD;
HotFixBlockAvailable : WORD;
HotFixDisabled : BYTE;
END;
Phys_Rec_Lock = RECORD
PhysicalRecordLockCount : BYTE;
Reserved : BYTE;
LoggedCount : WORD;
ShareLockCount : WORD;
RecordStart : LONGINT;
RecordEnd : LONGINT;
ConnectionNumber : WORD;
TaskNumber : BYTE;
LockType : BYTE;
END;
Server_Lan_IO = RECORD
SystemElapsedTime : LONGINT;
MaxRoutingBuffersAvail : WORD;
MaxRoutingBuffersUsed : WORD;
RoutingBuffersInUse : WORD;
TotalFileServicePackets : LONGINT;
FileServicePacketsBuffered : WORD;
InvalidConnPacketCount : WORD;
BadLogicalConnCount : WORD;
PacketsRcvdDuringProcCount : WORD;
ReprocessedRequestCount : WORD;
BadSequenceNumberPacketCount : WORD;
DuplicateReplyCount : WORD;
AcknowledgementsSent : WORD;
BadRequestTypeCount : WORD;
AttachDuringProcCount : WORD;
AttachWhileAttachingCount : WORD;
ForgedDetachRequestCount : WORD;
BadConnNumberOnDetachCount : WORD;
DetachDuringProcCount : WORD;
RepliesCanceledCount : WORD;
HopCountDiscardCount : WORD;
UnknownNetDiscardCount : WORD;
NoDGroupBufferDiscardCount : WORD;
OutPacketNoBufferDiscardCount : WORD;
IPXNotMyNetworkCount : WORD;
NetBiosPropagationCount : LONGINT;
TotalOtherPackets : LONGINT;
TotalRoutedPackets : LONGINT;
END;
Server_Misc_Info = RECORD
SystemElapsedTime : LONGINT;
ProcessorType : BYTE;
Reserved : BYTE;
ServiceProcessCount : BYTE;
ServerUtilizationCount : BYTE;
MaxBinderyObjectsAvail : WORD;
MaxBinderyObjectsUsed : WORD;
BinderyObjectsInUse : WORD;
ServerMemoryInK : WORD;
ServerWastedMemoryInK : WORD;
DynamicAreaCount : WORD;
DynamicSpace1 : LONGINT;
MaxUsedDynamicSpace1 : LONGINT;
DynamicSpaceInUse1 : LONGINT;
DynamicSpace2 : LONGINT;
MaxUsedDynamicSpace2 : LONGINT;
DynamicSpaceInUse2 : LONGINT;
DynamicSpace3 : LONGINT;
MaxUsedDynamicSpace3 : LONGINT;
DynamicSpaceInUse3 : LONGINT;
DynamicSpace4 : LONGINT;
MaxUsedDynamicSpace4 : LONGINT;
DynamicSpaceInUse4 : LONGINT;
END;
File_Serv_Info = RECORD
ServerName : TObjectName;
NetwareVersion : BYTE;
NetwareSubVersion : BYTE;
MaxConnectionsSupported : WORD;
ConnectionsInUse : WORD;
MaxVolumesSupported : WORD;
RevisionLevel : BYTE;
SFTLevel : BYTE;
TTSLevel : BYTE;
PeakConnectionsUsed : WORD;
AccountingVersion : BYTE;
VAPVersion : BYTE;
QueingVersion : BYTE;
PrintServerVersion : BYTE;
VirtualConsoleVersion : BYTE;
SecurityRestrictionsLevel : BYTE;
InternetBridgeSupport : BYTE;
END;
Short_Phys_Rec_Lock = RECORD
TaskNumber : BYTE;
LockFlag : BYTE;
RecordStart : LONGINT;
RecordEnd : LONGINT;
END;
TTS_Stats = RECORD
SystemElapsedTime : LONGINT;
TTS_Supported : BYTE;
TTS_Enabled : BYTE;
TTS_VolumeNumber : WORD;
TTS_MaxOpenTransactions : WORD;
TTS_MaxTransactionsOpened : WORD;
TTS_CurrTransactionsOpened : WORD;
TTS_TotalTransactions : LONGINT;
TTS_TotalWrites : LONGINT;
TTS_TotalBackouts : LONGINT;
TTS_UnfilledBackouts : WORD;
TTS_DiskBlocksInUse : WORD;
TTS_FATAllocations : LONGINT;
TTS_FileSizeChanges : LONGINT;
TTS_FilesTruncated : LONGINT;
NumberOfTransactions : BYTE;
ConnectionNumber : BYTE;
TaskNumber : BYTE;
END;
{***********************************************}
{*** END OF FILE SERVER ENVIRONMENT SERVICES ***}
{***********************************************}
{**************************************}
{*** PRINT SERVICES FOR DOS CLIENTS ***}
{**************************************}
CONST
{ Capture settings }
PS_Keep = $0004;
PS_NoFormFeed = $0008;
PS_Notify = $0010;
PS_ExpandTabs = $0040;
PS_PrintBanner = $0080;
TYPE
Capture_Flags = RECORD
Status : BYTE;
Flags : BYTE;
TabSize : BYTE;
ServerPrinter : BYTE;
NumberOfCopies : BYTE;
FormType : BYTE;
Reserved : BYTE;
BannerText : TBannerUserName;
Reserved1 : BYTE;
LocalLPTDevice : BYTE;
FlushCaptureTimeoutCount : WORD;
FlushCaptureOnDeviceClose : BYTE;
MaxLines : WORD;
MaxChars : WORD;
FormName : TFormName;
LPTCaptureFlag : BYTE;
FileCaptureFlag : BYTE;
TimingOutFlag : BYTE;
PrinterSetupBufferAddress : LONGINT;
PrinterResetBufferAddress : LONGINT;
ConnectionIDQueuePrintJob : BYTE;
CaptureInProgress : BYTE;
PrintQueueFlag : BYTE;
PrintJobValid : BYTE;
PrintQueueID : OT_BinderyID;
PrintJobNumber : WORD;
END;
Set_Capture_Flags = RECORD
Status : BYTE;
Flags : BYTE;
TabSize : BYTE;
ServerPrinter : BYTE;
NumberOfCopies : BYTE;
FormType : BYTE;
Reserved : BYTE;
BannerText : TBannerUserName;
Reserve : BYTE;
LocalLPTDevice : BYTE;
FlushCaptureTimeoutCount : WORD;
FlushCaptureOnDeviceClose : BYTE;
MaxLines : WORD;
MaxChars : WORD;
FormName : TFormName;
Pad : TByte21Array;
END;
{*********************************************}
{*** END OF PRINT SERVICES FOR DOS CLIENTS ***}
{*********************************************}
{*********************}
{*** MISCEALLONOUS ***}
{*********************}
const
MaxSlotsInShell = 8;
TYPE
TConnectionIDTable = RECORD
InUseFlag : BYTE;
OrderNumber : BYTE;
NetworkNumber : TByte4Array;
PhysicalNodeAddress : TByte6Array;
SocketNumber : WORD;
ReceiveTimeOut : WORD;
RoutingNode : TByte6Array;
PacketSequenceNumber : BYTE;
ConnectionNumber : BYTE;
ConnectionStatus : BYTE;
MaximumTimeOut : WORD;
Padding : TByte5Array;
END;
TAddressValue = RECORD
LENGTH : BYTE;
NetworkNumber : TByte4Array;
NodeAddress : TByte6Array;
END;
TServerAddress = RECORD
NetworkNumber : TByte4Array;
NodeAddress : TByte6Array;
SocketNumber : WORD;
AddressValue : TString10;
END;
TServerIDTable = RECORD
STInUse : BOOLEAN;
STOrderNumber : WORD;
STAddress : TServerAddress;
END;
PConnectionIDTableArray = ^TConnectionIDTableArray;
TConnectionIDTableArray = ARRAY [1 .. MaxSlotsInShell] OF TConnectionIDTable;
PFileServerNameTableArray = ^TFileServerNameTableArray;
TFileServerNameTableArray = ARRAY [1 .. MaxSlotsInShell] OF TByte48Array;
{$IFDEF WINDOWS}
Registers = record
case Integer of
0 : (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Word);
1 : (AL, AH, BL, BH, CL, CH, DL, DH: Byte);
end;
{$ENDIF}
CONST
BlankServerIDTable : TServerIDTable =
(STInuse : FALSE;
STOrderNumber : 0;
STAddress : (NetworkNumber : (0, 0, 0, 0);
NodeAddress : (0, 0, 0, 0, 0, 0);
SocketNumber : 0;
AddressValue : '') );
VAR
FileServerNameTable : ARRAY [1 .. MaxSlotsInShell] OF TObjectName;
ServerConnectionIDTable : ARRAY [1 .. MaxSlotsInShell] OF TServerIDTable;
ConnectionIDTablePtr : PConnectionIDTableArray;
FileServerNameTablePtr : PFileServerNameTableArray;
DriveConnectionTablePtr : PByte32Array;
DriveFlagTablePtr : PByte32Array;
DriveHandleTablePtr : PByte32Array;